home *** CD-ROM | disk | FTP | other *** search
/ Aminet 3 / Aminet 3 - July 1994.iso / Aminet / util / misc / GadMget.lha / GadMget / Source / mget_listview2.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-06-09  |  5.6 KB  |  240 lines

  1. #ifndef MGET_LISTVIEW2_C
  2. #define MGET_LISTVIEW2_C
  3.  
  4.  
  5. /*
  6.  *  Source machine generated by GadToolsBox V2.0b
  7.  *  which is (c) Copyright 1991-1993 Jaba Development
  8.  *
  9.  *  GUI Designed by : Jeremy Friesner
  10.  */
  11.  
  12. #include <exec/types.h>
  13. #include <intuition/intuition.h>
  14. #include <intuition/classes.h>
  15. #include <intuition/classusr.h>
  16. #include <intuition/imageclass.h>
  17. #include <intuition/gadgetclass.h>
  18. #include <libraries/gadtools.h>
  19. #include <graphics/displayinfo.h>
  20. #include <graphics/gfxbase.h>
  21. #include <clib/exec_protos.h>
  22. #include <clib/intuition_protos.h>
  23. #include <clib/gadtools_protos.h>
  24. #include <clib/graphics_protos.h>
  25. #include <clib/utility_protos.h>
  26. #include <string.h>
  27.  
  28. #include "mget_listview2.h"
  29.  
  30. extern struct List *filelist;
  31. extern struct List *getlist;
  32.  
  33. struct Screen         *Scr = NULL;
  34. APTR                   VisualInfo = NULL;
  35. struct Window         *mgetWnd = NULL;
  36. struct Gadget         *mgetGList = NULL;
  37. struct Menu           *mgetMenus = NULL;
  38. struct IntuiMessage    mgetMsg;
  39. struct Gadget         *mgetGadgets[2];
  40. UWORD                  mgetLeft = 0;
  41. UWORD                  mgetTop = 13;
  42. UWORD                  mgetWidth = 682;
  43. UWORD                  mgetHeight = 434;
  44. UBYTE                 *mgetWdt = (UBYTE *)"Loading....";
  45.  
  46. UWORD lastcode;
  47.  
  48. struct TextAttr topaz8 = {
  49.     ( STRPTR )"topaz.font", 8, 0x00, 0x00 };
  50.  
  51. struct NewMenu mgetNewMenu[] = {
  52.     NM_TITLE, (STRPTR)"Project", NULL, 0, NULL, NULL,
  53.     NM_ITEM, (STRPTR)"About", (STRPTR)"A", NULL, 0L, (APTR)mgetabout,
  54.     NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  55.     NM_ITEM, (STRPTR)"Quit", (STRPTR)"Q", 0, 0L, (APTR)mgetquit,
  56. /*    NM_TITLE, (STRPTR)"Edit", NULL, 0, NULL, NULL,
  57.     NM_ITEM, (STRPTR)"Copy", (STRPTR)"C", NM_ITEMDISABLED, 0L, (APTR)mgetcopy,
  58.     NM_ITEM, (STRPTR)"Cut", (STRPTR)"X", NM_ITEMDISABLED, 0L, (APTR)mgetcut,
  59.     NM_ITEM, (STRPTR)"Paste", (STRPTR)"V", NM_ITEMDISABLED, 0L, (APTR)mgetpaste,
  60. */    NM_END, NULL, NULL, 0, 0L, NULL };
  61.  
  62. UWORD mgetGTypes[] = {
  63.     LISTVIEW_KIND,
  64.     LISTVIEW_KIND
  65. };
  66.  
  67. struct NewGadget mgetNGad[] = {
  68.     2, 16, 670, 248, (UBYTE *)"Selectable Files", NULL, GD_listviewgadget, PLACETEXT_ABOVE, NULL, (APTR)listviewgadgetClicked,
  69.     2, 267, 670, 154, (UBYTE *)"Selected Files", NULL, GD_list2, PLACETEXT_BELOW, NULL, (APTR)list2Clicked
  70. };
  71.  
  72. ULONG mgetGTags[] = {
  73.     (GTLV_ShowSelected), NULL, 
  74.     (GT_Underscore), '_', 
  75.     (TAG_DONE),
  76.     (TAG_DONE)
  77. };
  78.  
  79. UWORD DriPens[] = {
  80.     ~0 };
  81.  
  82. int SetupScreen( void )
  83. {
  84.     if ( ! ( Scr = OpenScreenTags( NULL, SA_Left,    0,
  85.                     SA_Top,        0,
  86.                     SA_Width,    682,
  87.                     SA_Height,    458,
  88.                     SA_Depth,    2,
  89.                     SA_Font,    &topaz8,
  90.                     SA_Type,    CUSTOMSCREEN,
  91.                     SA_DisplayID,    NTSC_MONITOR_ID|HIRESLACE_KEY,
  92.                     SA_AutoScroll,    TRUE,
  93.                     SA_Overscan,    OSCAN_TEXT,
  94.                     SA_Pens,    &DriPens[0],
  95.                     SA_Title,    "MGET generator Screen",
  96.                     TAG_DONE )))
  97.         return( 1L );
  98.  
  99.     if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  100.         return( 2L );
  101.  
  102.     return( 0L );
  103. }
  104.  
  105. void CloseDownScreen( void )
  106. {
  107.     if ( VisualInfo ) {
  108.         FreeVisualInfo( VisualInfo );
  109.         VisualInfo = NULL;
  110.     }
  111.  
  112.     if ( Scr        ) {
  113.         CloseScreen( Scr );
  114.         Scr = NULL;
  115.     }
  116. }
  117.  
  118. int HandlemgetIDCMP( void )
  119. {
  120.     struct IntuiMessage    *m;
  121.     struct MenuItem        *n;
  122.     int            (*func)();
  123.     BOOL            running = TRUE;
  124.  
  125.     while( m = GT_GetIMsg( mgetWnd->UserPort )) {
  126.  
  127.         CopyMem(( char * )m, ( char * )&mgetMsg, (long)sizeof( struct IntuiMessage ));
  128.         lastcode = m->Code;
  129.         
  130.         GT_ReplyIMsg( m );
  131.  
  132.         switch ( mgetMsg.Class ) {
  133.  
  134.             case    IDCMP_REFRESHWINDOW:
  135.                 GT_BeginRefresh( mgetWnd );
  136.                 GT_EndRefresh( mgetWnd, TRUE );
  137.                 break;
  138.  
  139.             case    IDCMP_CLOSEWINDOW:
  140.                 running = mgetCloseWindow();
  141.                 break;
  142.  
  143.             case    IDCMP_GADGETUP:
  144.             case    IDCMP_GADGETDOWN:
  145.                 func = ( void * )(( struct Gadget * )mgetMsg.IAddress )->UserData;
  146.                 running = func();
  147.                 break;
  148.  
  149.             case    IDCMP_MENUPICK:
  150.                 while( mgetMsg.Code != MENUNULL ) {
  151.                     n = ItemAddress( mgetMenus, mgetMsg.Code );
  152.                     func = (void *)(GTMENUITEM_USERDATA( n ));
  153.                     running = func();
  154.                     mgetMsg.Code = n->NextSelect;
  155.                 }
  156.                 break;
  157.         }
  158.     }
  159.     return( running );
  160. }
  161.  
  162. int OpenmgetWindow( void )
  163. {
  164.     struct NewGadget    ng;
  165.     struct Gadget    *g;
  166.     UWORD        lc, tc;
  167.     UWORD        offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  168.  
  169.     if ( ! ( g = CreateContext( &mgetGList )))
  170.         return( 1L );
  171.  
  172.     for( lc = 0, tc = 0; lc < mget_CNT; lc++ ) {
  173.  
  174.         CopyMem((char * )&mgetNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  175.  
  176.         ng.ng_VisualInfo = VisualInfo;
  177.         ng.ng_TextAttr   = &topaz8;
  178.         ng.ng_LeftEdge  += offx;
  179.         ng.ng_TopEdge   += offy;
  180.  
  181.         mgetGadgets[ lc ] = g = CreateGadgetA((ULONG)mgetGTypes[ lc ], g, &ng, ( struct TagItem * )&mgetGTags[ tc ] );
  182.  
  183.         while( mgetGTags[ tc ] ) tc += 2;
  184.         tc++;
  185.  
  186.         if ( NOT g )
  187.             return( 2L );
  188.     }
  189.  
  190.     if ( ! ( mgetMenus = CreateMenus( mgetNewMenu, GTMN_FrontPen, 0L, TAG_DONE )))
  191.         return( 3L );
  192.  
  193.     LayoutMenus( mgetMenus, VisualInfo, GTMN_TextAttr, &topaz8, TAG_DONE );
  194.  
  195.     if ( ! ( mgetWnd = OpenWindowTags( NULL,
  196.                 WA_Left,    mgetLeft,
  197.                 WA_Top,        mgetTop,
  198.                 WA_Width,    mgetWidth,
  199.                 WA_Height,    mgetHeight + offy,
  200.                 WA_IDCMP,    LISTVIEWIDCMP|IDCMP_MENUPICK|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
  201.                 WA_Flags,    WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
  202.                 WA_Gadgets,    mgetGList,
  203.                 WA_Title,    mgetWdt,
  204.                 WA_ScreenTitle,    "GadMGet V1.0",
  205.                 WA_CustomScreen,    Scr,
  206.                 WA_MinWidth,    627,
  207.                 WA_MinHeight,    21,
  208.                 WA_MaxWidth,    682,
  209.                 WA_MaxHeight,    458,
  210.                 TAG_DONE )))
  211.     return( 4L );
  212.  
  213.     SetMenuStrip( mgetWnd, mgetMenus );
  214.     GT_RefreshWindow( mgetWnd, NULL );
  215.  
  216.     return( 0L );
  217. }
  218.  
  219. void ClosemgetWindow( void )
  220. {
  221.     if ( mgetMenus      ) {
  222.         ClearMenuStrip( mgetWnd );
  223.         FreeMenus( mgetMenus );
  224.         mgetMenus = NULL;    }
  225.  
  226.     if ( mgetWnd        ) {
  227.         CloseWindow( mgetWnd );
  228.         mgetWnd = NULL;
  229.     }
  230.  
  231.     if ( mgetGList      ) {
  232.         FreeGadgets( mgetGList );
  233.         mgetGList = NULL;
  234.     }
  235. }
  236.  
  237.  
  238. #endif
  239.  
  240.